package k2_oop.p2_inheritAndPolymorphic.demo01;

/**
 * 计算机无法直接通过类名判断出两个类的关联
 * 如果想让两个类具有继承关系，必须使用 extends（扩展） 关键字进行连接
 */
public class Son extends Father{

    public int age = 20;

    /**
     * 注释是对某段代码进行解释说明，不参与代码的编译
     * annotation 注解  有特殊含义
     * @Override 表示的子类重写父类中的方法.新版本中此注解可以省略，如不省略更加的清洗
     *
     * 重载：在一个文件中，方法名相同但参数不同的方法
     * 重写：两个具有父子关系的类，在子类中与父类的方法相同(方法名和参数必须相同，子类的返回值可以是父类返回值的子类)
     *      只是执行的内容不同
     *
     * this：表示当前类的对象
     * super：表示的是当前类的父类的对象
     */
    @Override
    public void dance() {
        //没有要求必须存在或必须不存在，根据实际的业务逻辑选择是否保留 super.xxx();
        super.dance();
        System.out.println("我年轻，我跳霹雳舞");
    }


    public void study(){
        int age = 10;
        System.out.println(age);
        System.out.println(this.age);
        System.out.println(super.age);
        System.out.println("我还小，我还需要学习");
    }

}
